The streaming of multimedia (e.g., videos) to a client device over a network may be based on adaptive bitrate streaming. For example, bandwidth and processing capability of the client device may be detected in real time. In response to a change of the detected bandwidth and viewport size, the video stream accessed by the client device may be adjusted accordingly. As an example, a video may be encoded at different bitrates. The client device may switch from a first representation of the video to a second representation of the video in response to the changing resources or capabilities of the client device.